// axios的封装文件
import axios from 'axios'

export function request(config){
    //1、创建axios的实例
    const instance = axios.create({
      baseURL: 'http://123.207.32.32:8000',
      timeout: 5000
    })

    //2、axios的拦截器
    instance.interceptors.request.use( //请求拦截
      config => {
        //发送请求成功
        // console.log("interceptor",config)
        // 对config中的一些信息不符合服务器的要求,进行相应的更改
        // 比如每次发送请求时,都希望在界面中显示一个请求的图标
        // 某些网络请求(如登录),必须携带一些特殊的信息,可以在此进行判定,比如没有登录则跳转到登录界面
        //处理后,拦截需要进行放行
        return config
      },err => {
        //发送请求失败
        console.log("interceptor",err)
      }
    )

    instance.interceptors.response.use( //响应拦截
      res => {
        console.log(res)
        //处理后,拦截需要进行放行
        return res.data //一般返回data信息,其他信息是axios自己加上去的,用处不大
      },
      err => {
        console.log(err)
      }
    )

    
    //3、发送真正的网络请求
    return instance(config) //axios本身就返回了一个Promise
}


// export function request(config){
//   return new Promise((resolve,reject) => {
//     //创建axios的实例
//     const instance = axios.create({
//       baseURL: 'http://123.207.32.32:8000',
//       timeout: 5000
//     })

//     //发送真正的网络请求
//     instance(config)
//     .then(res => {
//       resolve(res)
//     }).catch(err => {
//       reject(err)
//     })
//   })
// }
